﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Windows.Forms;
using LarDosIdosos.DataSources;

namespace LarDosIdosos
{
    public partial class Doacao : System.Web.UI.Page
    {
        private Business.Model.Funcionario funcionario;
        private const string Acesso = "acesso";
        private const string Editar = "editar";

        protected void Page_Load(object sender, EventArgs e)
        {
            CarregaFuncionario();
            if (!ValidaPermissao("acesso"))
            {
                Response.Redirect("~/Default.aspx");
            }
            CarregaBotoesDeCadastro();
        }

        private void CarregaBotoesDeCadastro()
        {
            //Seta a visibilidade de botão de acordo com a permissão do usuário
            buttonCadastrarEntrada.Visible = ValidaPermissao(Editar);
        }

        private void CarregaFuncionario()
        {
            if (Session["usuario"] != null)
            {
                funcionario = (Business.Model.Funcionario)Session["usuario"];
            }
        }

        //Note: Valida a permissão do funcionario
        private bool ValidaPermissao(string tipo)
        {
            if (funcionario != null)
            {
                switch (tipo)
                {
                    case Acesso:
                        if (funcionario.Cargo_Funcionario.CodigoCargo == 1)
                        {
                            return true;
                        }
                        break;
                    case Editar:
                        if (funcionario.Cargo_Funcionario.CodigoCargo == 1)
                        {
                            return true;
                        }
                        break;
                }
            }
            return false;
        }

        protected void gridViewDoacao_DataBound(object sender, EventArgs e)
        {
            
        }

        protected void gridViewDoacao_OnRowDataBound(object sender, GridViewRowEventArgs e)
        {
            //if (e.Row.RowType == DataControlRowType.DataRow)
            //{
            //    ImageButton editar = (ImageButton)e.Row.FindControl("imageButtonEditar");
            //    ImageButton excluir = (ImageButton)e.Row.FindControl("imageButtonExcluir");
            //    editar.Visible = excluir.Visible = ValidaPermissao(Editar);
            //}
        }

        protected void gridViewDoacao_OnRowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "visualizar")
            {
                int index = Convert.ToInt32(e.CommandArgument);
                GridViewRow row = gridViewDoacao.Rows[index];
                HiddenField hiddenField = (HiddenField)row.FindControl("hiddenFieldId");
                if (hiddenField != null) MontaPaginaComDetalhes(Convert.ToInt32(hiddenField.Value), false);
            }
            //if (e.CommandName == "editar")
            //{
            //    int index = Convert.ToInt32(e.CommandArgument);
            //    GridViewRow row = gridViewDoacao.Rows[index];
            //    HiddenField hiddenField = (HiddenField)row.FindControl("hiddenFieldId");
            //    if (hiddenField != null) MontaPaginaComDetalhes(Convert.ToInt32(hiddenField.Value), true);

            //}
            //if (e.CommandName == "excluir")
            //{
            //    int index = Convert.ToInt32(e.CommandArgument);
            //    GridViewRow row = gridViewDoacao.Rows[index];
            //    HiddenField hiddenField = (HiddenField)row.FindControl("hiddenFieldId");
            //    if (hiddenField != null) ExcluiRegistro(Convert.ToInt32(hiddenField.Value));

            //}
        }

        private void ExcluiRegistro(int Codigo_Doacao)
        {
            //var result = MessageBox.Show("Deseja excluir?", "Excluindo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly, false);
            //if (result == DialogResult.Yes)
            //{
            //    DataSourceDoacao dataSourceDoacao = new DataSourceDoacao();
            //    dataSourceDoacao.Delete(Codigo_Doacao);

            //    gridViewDoacao.DataBind();
            //}
        }

        protected void gridViewDoacao_OnSorted(object sender, EventArgs e)
        {
            
        }

        protected void gridViewDoacao_OnPageIndexChanged(object sender, EventArgs e)
        {
            
        }

        protected void ddPageSize_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }

        private void MontaPaginaComDetalhes(int Codigo, bool habilita)
        {
            DataSources.DataSourceEntrada dataSource = new DataSourceEntrada();
            Business.Model.EntradaProduto doacao = dataSource.BuscaEntrada(Codigo);
            webUserControlDoacao.CarregaVisualizacaoDetalhada(doacao, habilita);
            panelVisualizarDoacao.Visible = true;
            panelDoacao.Visible = false;
        }



        protected void buttonCadastrarEntrada_OnClick(object sender, EventArgs e)
        {
            Response.Redirect("~/CadastroEntradaProduto.aspx");
        }

        protected void linkButtonVoltar_OnClick(object sender, EventArgs e)
        {
            webUserControlDoacao.Voltar();
            panelVisualizarDoacao.Visible = false;
            panelDoacao.Visible = true;
            gridViewDoacao.DataBind();
        }
    }
}